package com.liuli.utils;

import java.util.ArrayList;
import java.util.List;

import com.liuli.entity.Category;

public class TreeUtils {
	
	public static List<Category> getChildResoure(List<Category> list){
		
		//存放父菜单内容
		List<Category> parentlist = new ArrayList<Category>();
		
		for(Category category :list){
			//如果pno是0那么他就是父菜单
			if("0".equals(category.getPno())){
				parentlist.add(category);
			}
		}
		//删除所有集合中的父节点
		list.removeAll(parentlist);
		getChirends(list,parentlist);
		return parentlist;
	}
	/**
	 * 
	 * @param clist  子集合
	 * @param plist  父集合
	 */
	public static void getChirends(List<Category> clist,List<Category> plist){
		if(clist.size()==0){
			return ;
		}
      List<Category> templist = new ArrayList<Category>();//存放已加入的子节点
		for(Category pc:plist){
			String p_id = pc.getCno();  //父节点的id号
			for(Category cc:clist){
				String c_id= cc.getPno();//  子节点对应的父节点id
				if(p_id.equals(c_id)){
					pc.getSubCategory().add(cc);  //把子节点加入到对应的父点下
					templist.add(cc);
				}
			}
		}
		clist.removeAll(templist);//把加入到父节点中的子节点删除
		
		getChirends(templist,clist);
	}
	

}
